package com.systemic.mapper;

import com.systemic.pojo.Dynamic;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @ClassName: BaseMapper
 * @Description:
 * @Author:
 * @CreateTime: 2023-12-27 15:17
 * @Version:
 **/

public interface BaseMapper<E> {

    /**
     * 新增
     * @param map
     * @return
     */
    int insert(E map);

    /**
     * 删除
     * @param map
     * @return
     */
    int delete(E map);

    /**
     * 更新
     * @param map
     * @return
     */
    int update(E map);

    /**
     * 查询
     * @param map
     * @return
     */
    List<E> select(E map);

    /**
     * 模糊查询
     * @param map
     * @return
     */
    List<E> likeSelect(E map);

    /**
     * 获取自增的id
     * @return
     */
    @Select("SELECT LAST_INSERT_ID()")
    Integer getLastInsertId();

    /**
     * 管理端：批量删除
     * @param idList
     * @return
     */
    int deleteBatchIds(@Param("idList") List<Integer> idList);

    /**
     * 偏移量分页查询
     * @param offset
     * @param pageSize
     * @return
     */
    List<E> selectListPage(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize);

    /**
     * 查询（单个）
     * @param map
     * @return
     */
    E selectONE(E map);

}
